<?php 
namespace app\api\controller\v1;

use app\api\service\AppToken;
use app\api\service\UserToken;
use app\api\service\Token as TokenService;
use app\api\validate\AppTokenGet;
use app\api\validate\TokenGet;
use app\lib\exception\ParameterException;


class Token{
	/**
     * 用户获取令牌（登陆）
     * @url /token
     * @POST code
     * @note 虽然查询应该使用get，但为了稍微增强安全性，所以使用POST
     */
    public function getToken($code='')
    {
        (new TokenGet())->goCheck();
        $wx = new UserToken($code);
        $token = $wx->get();
        return [
            'token' => $token
        ];
    }

    /**
      * 第三方应用获取令牌
      * @url /app_token?
      * @POST ac=:ac se=:secret
      */
    public function getAppToken($ac='',$se=''){
        (new AppToken())->goCheck();
        $app = new AppToken();
        $token = $app->get($ac,$se);
        return ['token'=>$token];
    }

    public function verifyToken($token=''){
        if(!$token){
            throw new ParameterException([
                    'token不允许为空'
                ]);
        }
        $valid = TokenService::verifyToken($token);
        return [
            'isValid' => $valid
            ];
    }

}
?>